package 线程创建的第二种方式;

/**
 * @作者:侯国威
 * @时间: 2020/4/11/21:13
 * @邮箱:1045077189@qq.com
 * 创建多线程第二种方式：实现Runnable接口
 * 1、创建一个实现Runnable接口的类
 * 2、实现类去 是实现Runnable种的轴向方法：run()
 * 3、创建实现类的对象
 * 4、将此对象作为参数传递到Thread类的构造器种，创建Thread类的对象
 * 5、同过Thread类的对象调用Start();
 */


public class deom2 {
    public static void main(String[] args) {
        //3、创建实现类的对象
        Test test = new Test();
        //4、将类的对象作为参数传递到Thread中
        Thread t1 = new Thread(test);
        Thread t2 = new Thread(test);
        Thread t3 = new Thread(test);
        t1.setName("窗口1:");
        t2.setName("窗口2:");
        t3.setName("窗口3:");
        t1.start();
        t2.start();
        t3.start();


    }
}
class Test implements Runnable {
    //1、创建Runnable抽象类
    private static int ticket = 100;
    Object object = new Object();

    @Override
    //2、创建run方法
    public void run() {
        while (true) {
            synchronized (object) {
                if (ticket > 0) {
                    System.out.println("我是：" + Thread.currentThread().getName() + "票:"+ticket);
                    ticket--;
                }else {
                    break;
                }
            }
        }
    }
}
